#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
int n,m,_sum,mi[10],f[10][100][1024];
struct node
{
	int num,x;
}stat[1024];
void dfs(int dep,int num,int x,bool flag)
{
	if(dep==n+1)
	{
		stat[++_sum]=(node){num,x};
		return;
	}
	if(!flag)dfs(dep+1,num+1,x+mi[dep],true);
	dfs(dep+1,num,x,false);
	return;
}
int main()
{
	scanf("%d%d",&n,&m);
	mi[0]=1;
	for(int i=1;i<=9;++i)mi[i]=mi[i-1]<<1;
	dfs(1,0,0,false);
	for(int i=1;i<=_sum;++i)f[1][stat[i].num][i]=1;
	for(int i=2;i<=n;++i)
	{
		for(int j=1;j<=_sum;++j)
		{
			for(int k=1;k<=_sum;++k)
			{
				if(!(stat[j].x&stat[k].x)&&!(stat[j].x&stat[k].x<<1)&&!(stat[j].x<<1&stat[k].x)&&stat[j].num+stat[k].num<=m)
				{
					for(int l=stat[k].num;l<=m-stat[j].num;++l)
					{
						f[i][stat[j].num+l][j]+=f[i-1][l][k];
					}
				}
			}
		}
	}
	int ans=0;
	for(int i=1;i<=_sum;++i)ans+=f[n][m][i];
	printf("%d\n",ans);
	return 0;
}
